package lab.poc.erl.otp;

import java.util.List;

import lab.poc.erl.Pid;
import lab.poc.erl.Reference;

public interface GenServerBehavior {

	GenServerOK otpInit(List<Object> args);

	void otpTerminate(Object state, StopReason stopType, String reasonInfo,
			Throwable optionalReasonInfo);

	GenServerReply otpHandleCall(Object message, Object state, Pid from,
			Reference uniqueId);

	GenServerOK otpHandleCast(Object message, Object state, Pid from);

	GenServerOK otpHandleUnknown(Object message, Object state, Pid from);
}
